package nl.scalasim

import nl.scalasim.actors.traits.SimulationActor

/**
 * Defines the kind of structures that can be built within a specific
 * simulation. 
 *
 * @author Yigal Duppen
 * @since Oct 1, 2010
 */
abstract class Setting {

  /**
   * All ActorDescriptors provided by this setting. 
   */
  def types: Set[ActorDescriptor]

  /**
   * Creates a new actor based on a descriptor. 
   */
  def newActor(d: ActorDescriptor, a: AddressBook): Option[SimulationActor]

}